package xyz.zdsoft.ask_for_leave_manage_module.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.zdsoft.ask_for_leave_manage_module.vo.*;
import xyz.zdsoft.ask_for_leave_manage_module.bo.LeaveBo;
import xyz.zdsoft.common.entity.LeaveOperationRecord;
import xyz.zdsoft.common.utils.Result;
import xyz.zdsoft.common.utils.ResultBody;

public interface StudentLeaveService extends IService<LeaveVo> {

    Result<LeaveVo> queryCurStuLeaves(LeaveBo leaveBo);

    Result<CurStuLeaveBaseInfoVo> queryCurStuBaseInfo();

    Result<String> queryFailReasonByLeaId(Integer leaveId);

    ResultBody askForLeave(LeaveBo leaveBo);

    Result<LeaveRecords> queryCurStuLeaveRecords(Integer leaveId);

    Result<StuLeaveDetailVo> queryLeaveDetailByLeaId(Integer leaveId);

    Result<StuLeaveAttachVo> queryStuLeaveAttach(Integer leaveId);

    Integer insertLeaveLog(LeaveOperationRecord record);
}
